import 'package:gameplay_flutter/lib_baseview/lib_baseview.dart';
import 'package:get/get_core/src/get_main.dart';
import 'package:get_storage/get_storage.dart';

import '../../lib_basemodel/country/country_model.dart';
import '../../lib_baseview/provider.dart';
import '../../lib_network/http_api.dart';
import '../../lib_network/http_helper.dart';
import '../../m_me/me_controller.dart';

class SelectCountryModel extends JRChangeNotifier {
  List<CountryModel> countryList = [];
  int _selectedIndex = -1; // 初始化为 -1 表示没有选中项
  int get selectedIndex => _selectedIndex;
  final box = GetStorage();

  void setSelectedIndex(int index) {
    _selectedIndex = index;
    notifyListeners(); // 通知监听器数据已更新
  }


  SelectCountryModel() {
    initData('noChange');
    final meController = Get.find<MeController>();
    ever(meController.languageCode, (code) {
      initData('change');
    });
  }

  Future initData(type) async {
    countryList = [];
    if (box.read('countryList') != null && box.read('countryList').length > 0 && type == 'noChange') {
      for (var element in box.read('countryList')) {
        countryList.add(element);
      }
      notifyListeners();
      return countryList;
    } else {
      var response = await HttpHelper.instance().post(
        HttpApi.getcountry,
        showLoading: true,
        showToast: true,
      );
      if (response.isSuccess) {
        List tmpDataList = response.result['items'];
        for (var element in tmpDataList) {
          CountryModel country = CountryModel.fromJson(element);
          countryList.add(country);
        }
        notifyListeners();
        box.write('countryList', countryList);
        return countryList;
      } else {
        notifyListeners();
        return [];
      }
    }
  }

  Future<void> initCurrentData() async {
    // user = UserManager.instance.currentUser;
    // RLog.i("tokenInfo: ${UserManager.instance.getToken()}");
  }

  // Future<bool> getCarList() async {
  //   // var userResponse = await VehicleApi.instance.getCarList();
  //   // if (!userResponse.isSuccess) {
  //   //   throw Exception();
  //   // } else {
  //   //   carInGarageGetListRsp_Data =
  //   //       userResponse.data as CarInGarageGetListRspData;
  //   //   notifyListeners();
  //   //   return true;
  //   // }
  // }

  // Future<bool> getMysteryBoxList() async {
  //   // var userResponse = await VehicleApi.instance.getMysteryBoxList();
  //   // if (!userResponse.isSuccess) {
  //   //   throw Exception();
  //   // } else {
  //   //   carBlindBoxGetListRsp_Data =
  //   //       userResponse.data as CarBlindBoxGetListRspData;
  //   //   notifyListeners();
  //   //   return true;
  //   // }
  // }

  // Future<bool> openMysteryBox(Int64 id, {Int64? actId}) async {
  //   // showLoadingDialog();
  //   // var userResponse =
  //   //     await VehicleApi.instance.openMysteryBox(id, actId: actId);
  //   // if (!userResponse.isSuccess) {
  //   //   showToast(userResponse.errorMsg ?? T.current.service_error_retry);
  //   //   dismissLoadingDialog();
  //   //   return false;
  //   // } else {
  //   //   await getCarList();
  //   //   dismissLoadingDialog();
  //   //   showToast(T.current.open_suc);
  //   //   return true;
  //   // }
  // }

  // Future<bool> driveVehicle(UserCar? car) async {
  //   if (car?.id == null) {
  //     return false;
  //   }
  //   showLoadingDialog();
  //   var userResponse = await VehicleApi.instance.driveVehicle(car!.id);
  //   if (!userResponse.isSuccess) {
  //     showToast('${userResponse.data?.errorMsg ?? T.current.service_error_retry}');
  //     dismissLoadingDialog();
  //     return false;
  //   } else {
  //     Reporter.track(TrackEvent.car_drive, {
  //       "car_level": CarLevel.values.indexOf(car!.carMetaInfo.level),
  //       "car_id":car!.id.toInt(),
  //     });
  //     var response = await UserApi.instance.getUserInfo();
  //     if (response.isSuccess) {
  //       var user = response.data?.user;
  //       UserManager.instance.updateUserInfo(user);
  //     }
  //     getCarList();
  //     dismissLoadingDialog();
  //     showToast(T.current.drive_suc);
  //     return true;
  //   }
  // }

  // Future<bool> vehicleEndurance(Int64 id) async {
  //   CarRenewalPlanGetListReq carRenewalPlanGetListReq =
  //       CarRenewalPlanGetListReq.create();
  //   carRenewalPlanGetListReq.id = id;
  //   var userResponse =
  //       await VehicleApi.instance.vehicleEndurance(carRenewalPlanGetListReq);
  //   if (!userResponse.isSuccess) {
  //     showToast(userResponse.errorMsg ?? T.current.service_error_retry);
  //     dismissLoadingDialog();
  //     return false;
  //   } else {
  //     carRenewalPlanGetListRsp_Data =
  //         userResponse.data as CarRenewalPlanGetListRspData;
  //     currentPlan = carRenewalPlanGetListRsp_Data!.renewalPlanList.first;
  //     return true;
  //   }
  // }

  // CarRenewalPlanGetListRspData_RenewalPlan? currentPlan;

  // void changeCurPlan(CarRenewalPlanGetListRspData_RenewalPlan? plan) {
  //   currentPlan = plan;
  //   notifyListeners();
  // }

  // // Future<bool> isInstall() async {
  // //   return await tobias.isAliPayInstalled();
  // // }

  // Future<bool> renewCar(BuildContext context,UserCar car,Int64 id, CarRenewalPlanGetListRspData_RenewalPlan plan, Int64 actId) async {
  //   var result = await CashApi.instance.getCurrUserCash();
  //   if (result.isSuccess&&result.data!=null) {
  //     if(result.data!.coin.toInt()<plan.price.toInt()){
  //       RechargeDialog.showWithBottomSheet(context,
  //           price: plan.price.toInt(),
  //           source: ChargeSource.RIDE_RENEW, onRechargeSuccess: () {});
  //       return false;
  //     }
  //   }
  //   return await _renewCar(id, plan.id, actId, car, context);
  // }

  // Future<bool> _renewCar(Int64 id, Int64 planId, Int64 actId, UserCar car, BuildContext context) async {
  //   CarRenewalReq carRenewalReq = CarRenewalReq.create();
  //   carRenewalReq.carId = id;
  //   carRenewalReq.planId = planId;
  //   carRenewalReq.actId = actId;
  //   var userResponse = await VehicleApi.instance.renewCar(carRenewalReq);
  //   Reporter.track(TrackEvent.car_renewal, {
  //     "car_level":CarLevel.values.indexOf(car.carMetaInfo.level),
  //     "car_id":car.id.toInt(),
  //     "amount":currentPlan?.act.actPrice,
  //     "hours":(currentPlan?.days??0)*24,
  //     "is_success":userResponse.isSuccess,
  //   });
  //   if (!userResponse.isSuccess) {
  //     showToast(userResponse.errorMsg ?? T.current.service_error_retry);
  //     dismissLoadingDialog();
  //     return false;
  //   } else {
  //     await getCarList();
  //     showToast(T.current.battery_life_suc);
  //     UserManager.instance.refreshUserInfo();
  //     Navigator.pop(context);
  //     return true;
  //   }
  // }
}
